import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
import ElementUI from 'element-ui'
import store from './store'
import Cookies from 'js-cookie'
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
import NProgress from 'nprogress' // Progress 进度条
import 'nprogress/nprogress.css' // Progress 进度条样式
import 'element-ui/lib/theme-chalk/index.css' // 默认主题
import 'styles/reset.css'
import 'styles/border.css'
import 'styles/iconfont/iconfont.css'

import "babel-polyfill"
import Global from "../static/config/global.js"
import { connect } from 'tls';


Vue.use(ElementUI);
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded';
Vue.prototype.$axios = axios;
Vue.prototype.$global = Global;
Vue.prototype.$NProgress = NProgress;

const whiteList = ['/login'] // 不重定向白名单
    //使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {

    NProgress.start();
    // console.log(to.path);
    //如果路由页面等于登录页面,就跳转路由页面
    //判断用户信息是否存在
    // console.log(Cookies.get('sidebarStatus'));
              
    //不存在用户信息,判断cookie 用户信息是否过时了
    if (Cookies.get('sidebarStatus') != undefined || typeof(Cookies.get('sidebarStatus')) == "object") {
        // console.log(store.getters.logFlag)
        //存在cookie
        if (store.getters.logFlag) {
            // console.log("VUEX 用户信息存在")
            //存在用户信息
            next();
        } else {
            // console.log("VUEX 用户信息存在 Set");
            store.dispatch('GetInfo').then(res => { // 拉取用户信息
                next()
            }).catch((err) => {
                next({ path: '/' });
            })
        }
        //存在用户信息
        // 简单的判断IE10及以下不进入富文本编辑器，该组件不兼容
        // if (navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') {
        //     Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看', '浏览器不兼容通知', {
        //         confirmButtonText: '确定'
        //     });
        // } else {
        //     next();
        // }

    } else {
        //console.log(whiteList.indexOf(to.path));
        if (whiteList.indexOf(to.path) !== -1) {
            next()
        } else {
            //console.log("死循环");
            next('/login')
            NProgress.done()
        }
    }


})
router.afterEach(() => {
    NProgress.done() // 结束Progress
})


new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app');